function ccR_Druid_3()

	if ccrPlayerLevel() >= 10 and ccrPlayerLevel() <= 89 then Druid_Guardian_10_89() end

end

function Druid_Guardian_10_89()
	-- Run the feral rotation in cat form.
	if ccrPlayerHasBuff(CAT_FORM) then
		ccR_Druid_2()
		return
	end

	-- Talents
	ccR_Druid_Wild_Charge()
	ccR_Druid_Renewal()
	ccR_Druid_Cenarion_Ward()

	if not ccrPlayerHasBuff(BEAR_FORM)
	and not ccrPlayerHasBuff(CAT_FORM)
	then
		ccrCast(BEAR_FORM)
		return
	else	
		local vCount = #tblPGetMeleeEnemies

		ccR_Druid_SurvivalInstincts()
		ccR_Druid_Faerie_Fire()	
		ccR_Druid_Barkskin()
		ccR_Druid_SkullBash()
		--ccR_Druid_Bear_Hug()
		ccR_Druid_Might_Of_Ursoc()
		ccR_Druid_Mighty_Bash()

		if ccrPlayerHasBuff(TOOTH_AND_CLAW)
		and SpellCanAttack(MAUL)
		and ccrPlayerHealth() >= 50
		then
			ccrCastAttack(MAUL)
			return
		end

		if vCount >= 3 then
			ccR_Druid_Berserk()
			ccR_Druid_Disorienting_Roar()
			ccR_Druid_Ursols_Vortex()
			if ccrPlayerHasBuff(BERSERK_BEAR)
			and SpellCanAttack(MANGLE)
			then
				ccrCastAttack(MANGLE)
				return
			end
		end

		if ccrPlayerRage() >= 60 then
			-- Frenzied Regeneration
			if ccRS.Druid_3_UseFrenziedRegeneration
			and (
					(ccrPlayerHealth() <= ccRS.Druid_3_FrenziedRegenerationHP)
					or
					(ccrPlayerHealth() < 100 and ccrPlayerRage() >= 90)
				)
			and ccrPlayerHasSpell(FRENZIED_REGENERATION)
			and SpellIsReady(FRENZIED_REGENERATION)
			then
				ccrCast(FRENZIED_REGENERATION)
				return
			end

			-- Savage Defense
			if ccrPlayerHasSpell(SAVAGE_DEFENSE)
			and not ccrPlayerHasBuff(SAVAGE_DEFENSE)
			and SpellIsReady(SAVAGE_DEFENSE)
			and not ccrPlayerHasBuff(SAVAGE_DEFENSE)
			then
				ccrCast(SAVAGE_DEFENSE)
				return
			end

			-- Maul
			if SpellCanAttack(MAUL) then
				ccrCastAttack(MAUL)
				return
			end
		else
			if SpellIsReady(ENRAGE) then ccrCast(ENRAGE) end
		end

		-- Thrash > Swipe
		if SpellCanAttack(THRASH_BEAR) then
			ccrCastAttack(THRASH_BEAR)
			return
		end

		-- Lacerate > Mangle
		if SpellCanAttack(LACERATE) then
			ccrCastAttack(LACERATE)
			return
		else
			if SpellCanAttack(MANGLE) then
				ccrCastAttack(MANGLE)
				return
			end
		end


		if SpellCanAttack(SWIPE_BEAR)
		and vCount >= 3
		then 
			ccrCastAttack(SWIPE_BEAR)
			return
		end
	end
end